import Utils from './mod.utils';
import String from './mod.string';
import Util from './util.js';

var backObj = {
  longitude: 0,
  latitude: 0,
  address: '',
};
var isSuccess = false;

let baiduMap = {
  getBaiduMapObj: function (fun) {
    var _this = this;
    if (isSuccess == true) {
      if (fun) {
        fun(backObj);
      }
    } else {
      _this.getPositionInfo(fun);
    }
  },
  getPositionInfo: function (fun) {
    let _this = this;

    function onSuccess(position) {
      isSuccess = true;
      var longitude = position.longitude || 0;
      var latitude = position.latitude || 0;
      var address = position.addr || '';
      backObj.longitude = longitude;
      backObj.latitude = latitude;
      backObj.address = address;
      if (fun) {
        fun(backObj);
      }
    }

    //定位数据获取失败响应
    function onError(error) {
      isSuccess = false;
      if (fun) {
        fun(backObj);
      }
    }

    // 百度地图API功能
    let map = new BMap.Map("BMap_Point_allmap");
    let point = new BMap.Point(117.1423857884, 36.6637751615);
    map.centerAndZoom(point, 14);
    let geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function (r) {
      if (this.getStatus() == BMAP_STATUS_SUCCESS) {
        let latitude = r.point.lat;
        let longitude = r.point.lng;
        let address = '';
        let geoc = new BMap.Geocoder();
        let pt = r.point;
        geoc.getLocation(pt, function (rs) {
          // 获取经纬度
          let addComp = (rs && rs.addressComponents) ? rs.addressComponents : null;
          if (addComp != null)
            address = addComp.province + "" + addComp.city + "" + addComp.district + "" + addComp.street + "" + addComp.streetNumber;
          let position = {
            latitude: latitude,
            longitude: longitude,
            addr: address,
          };
          onSuccess(position);
        });
        // alert('您的位置：' + r.point.lng + ',' + r.point.lat);
      } else {
        let status = this.getStatus();
        onError(status);
        // alert('failed' + this.getStatus());
      }
    }, {enableHighAccuracy: true});
    //关于状态码
    //BMAP_STATUS_SUCCESS	检索成功。对应数值“0”。
    //BMAP_STATUS_CITY_LIST	城市列表。对应数值“1”。
    //BMAP_STATUS_UNKNOWN_LOCATION	位置结果未知。对应数值“2”。
    //BMAP_STATUS_UNKNOWN_ROUTE	导航结果未知。对应数值“3”。
    //BMAP_STATUS_INVALID_KEY	非法密钥。对应数值“4”。
    //BMAP_STATUS_INVALID_REQUEST	非法请求。对应数值“5”。
    //BMAP_STATUS_PERMISSION_DENIED	没有权限。对应数值“6”。(自 1.1 新增)
    //BMAP_STATUS_SERVICE_UNAVAILABLE	服务不可用。对应数值“7”。(自 1.1 新增)
    //BMAP_STATUS_TIMEOUT	超时。对应数值“8”。(自 1.1 新增)

  },

};
export default baiduMap;
